/**
 * 
 */
package soa.security.dao;

import java.util.List;
import java.util.Map;

import javax.naming.Name;

import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.ldap.query.SearchScope;

import soa.security.domain.Region;

/**
 * @author Cre.Gu
 *
 */
public interface RegionDao extends SpringLdapDao<Region> {

	// void create(Region t);
	//
	// void update(Region t);
	//
	// Region findByDn(String dn);
	//
	// void deleteByDn(String dn);

	List<Region> allRegions(String baseDn, SearchScope searchScope);

	List<Region> allRegions(String baseDn, SearchScope searchScope, Map<String, Object> params);

	public Page<Region> allRegions(String parentDn, org.ldaptive.SearchScope searchScope, PageRequest pageRequest)
			throws Exception;

	public String findMaxNumber(final Class<?> clazz);

	void deleteAllEntries(Name dn);

	public List<Region> existCode(String code);

	Name findDnById(String id);

	Region findByPrimaryKey(String regionId);

	boolean exist(String regionId);

}
